package com.empire.module.member.dal.dataobject.mapconfig;

import com.empire.framework.mybatis.core.dataobject.BaseWithDeptDO;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.empire.framework.mybatis.core.dataobject.BaseDO;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 地图配置主 DO
 *
 * @author 主席大人
 */
@TableName("member_map_config")
@KeySequence("member_map_config_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MapConfigDO extends BaseWithDeptDO {

    /**
     * 配置ID（UUID）
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;
    /**
     * 配置名称
     */
    private String name;
    /**
     * 配置描述
     */
    private String description;
    /**
     * 省份编码（参考国家标准GB/T 2260）
     */
    private String provinceCode;
    /**
     * 城市编码
     */
    private String cityCode;
    /**
     * 区县编码
     */
    private String districtCode;
    /**
     * 地图中心经度（范围：-180~180）
     */
    private BigDecimal centerLng;
    /**
     * 地图中心纬度（范围：-90~90）
     */
    private BigDecimal centerLat;
    /**
     * 缩放级别（范围：1~20）
     */
    private Integer zoomLevel;
    /**
     * 是否默认配置：0-否，1-是
     */
    private Integer isDefault;
    /**
     * 是否默认配置：1-进入，1-禁出
     */
    private Integer fenceType;
    /**
     * 开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;
    /**
     * 最后更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
    /**
     * 两个点多少距离算聚集
     */
    private Double distance;
    /**
     * 两个点的时间间隔
     */
    @TableField("`interval`")
    private Integer interval;
    /**
     * 1-围栏预警;2-聚集预警;3-出入杭预警;4-接入预警
     */
    private Integer warnType;
    /**
     * 关键词集合
     */
    private String keywords;

}